import Vue from 'vue'
import {log} from '@/common/log.js'

//定义http的header头额外添加的元素
Vue.prototype.$header = () =>{
	return {
		Authorization: 'Bearer '+uni.getStorageSync('token')
	}
}

/**
 * 通用日志打印封装,在vue文件通过this.$log.debug()或this.$log.info()调用
 * Vue.prototype.$logLevel 在config.js中定义
 */
Vue.prototype.$log = {
	debug : function (tip, content){
			if (Vue.prototype.$logLevel === 'debug') {
				log(tip,content)
			}
	},
	info : function (tip, content){
			if (Vue.prototype.$logLevel === 'debug' || Vue.prototype.$logLevel === 'info') {
				log(tip,content)
			}
	},
}

//通用弹窗 通过this.$pop()调用
Vue.prototype.$pop = (tip, content) => {
	return new Promise((resolve, reject) => {
		let ttype = typeof tip; //获取tip类型
		if (!content) {
			content = ttype === 'string' ? tip : JSON.stringify(tip);
			tip = "提示信息"
		}
		ttype = typeof tip; //再获取tip类型
		let ctype = typeof content;
		uni.showModal({
			title: ttype === 'string' ? tip : JSON.stringify(tip),
			content: ctype === 'string' ? content : JSON.stringify(content), //必须是字符串
			showCancel: false,
			success: res => {
				if (res.confirm) {
					resolve();
				}
			}
		});
	})
}

// 添加单位，如果有rpx，%，px等单位结尾或者值为auto，直接返回，否则加上rpx单位结尾
Vue.prototype.$addUnit = (value = 'auto') => {
    value = String(value);
	// 用uView内置验证规则中的number判断是否为数值
    return Vue.prototype.$u.test.number(value) ? `${value}rpx` : value;
}